ワードプレスのwp_head()の中身を整理して必要ないタグは削除
WordPress(ワードプレス)でウェブサイトを構築する上で必須の関数といえる、wp_head()
。このコードがhead内に様々な要素を出力するのですが、その中には必要のないものも含まれています。
不要なソースコードや外部ファイルはウェブサイトのパフォーマンスに影響するので、wp_head()
が吐き出した要らないものは排除してしまいましょう。
ちなみにワードプレス本体のバージョンによって多少内容が変わるので、ver3.Xやver4.Xなどの古いバージョンでの使用は、使えないものや意味を成さないものも含まれていますのでご注意ください。
remove_actionを使ってfunctions.phpに記述したwp_head()の出力結果を整える
WordPress(ワードプレス)のfunctions.php
ファイルに下のプログラムを記述します。コピペOK!
- remove_actionとは?
特定のアクションフックに付加されている関数を除去します。特定のアクションフックに付加されているデフォルト関数を除去することができ、別のものに置き換えできます。
このソースコードはあくまでも、僕が個人的に必要のないと考えるwp_head()
の出力内容を整えるものです。僕自身、ワードプレスを使ったホームページ制作案件でほぼ毎回使っているものになります。
/**
* wp_head()出力内容を整理
*/
/* WordPressのバージョン出力を排除する */
remove_action('wp_head','wp_generator');
/* JS, CSS要素のバージョン出力を排除する */
function remove_cssjs_ver2( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver2', 9999 );
add_filter( 'script_loader_src', 'remove_cssjs_ver2', 9999 );
/* テキストエディタの絵文字に対応する為の各種出力を排除する */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
/* wlwmanifestの出力を排除する */
remove_action('wp_head', 'wlwmanifest_link');
/* 外部ブログツールからの投稿を行う為の出力を排除する */
remove_action('wp_head', 'rsd_link');
/* 短縮URLの出力を排除する */
remove_action('wp_head', 'wp_shortlink_wp_head');
/* DNS Prefetchingの出力を排除する */
remove_action('wp_head', 'wp_resource_hints', 2);
/* RSSフィードの出力を排除する */
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
/* ブロックエディタ(Gutenberg)用CSSの出力を排除する */
function remove_editor_style() {
wp_dequeue_style('wp-block-library');
}
上記ソースコードの注意点
WordPressバージョン5.8台までは問題なく使えることを確認しています。確か4.3以降は問題なかったかと。
ご利用中のワードプレスのバージョンによっては無効なものも含まれていますのであらかじめご了承ください。
/* JS, CSS要素のバージョン出力を排除する */
上のサンプルコードをそのままコピペしてご利用ください。余白を詰めると機能しなくなります。
/* JS, CSS要素のバージョン出力を排除する
↓このようにつめて書くと機能しなくなります。*/
function remove_cssjs_ver2( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver2', 9999 );
add_filter( 'script_loader_src', 'remove_cssjs_ver2', 9999 );
ホームページの運用の仕方によっては排除しないほうが良いものもあります
上のソースコードの中でも、ウェブサイトの運用方法によっては残すべき出力内容があります。
RSSフィード用のURL出力
/* RSSフィードの出力を排除する */
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
ニュースコンテンツやウェブマガジンなどに特化したウェブサイトの場合はRSSフィードは必要だと考えます。
ブロックエディタ(Gutenberg)用のCSS出力
/* ブロックエディタ(Gutenberg)用CSSの出力を排除する */
function remove_editor_style() {
wp_dequeue_style('wp-block-library');
}
ブロックエディタを使ってページ編集される方はこのGutenbergデフォルトCSSは必要になるかと。
以上が、ワードプレスのwp_head()
の中身を整理して、必要のない不要タグを削除する方法のご紹介でした。
今後のWordPressの新バージョンにより、プログラムの記述内容が変更になる可能性もあります。
変更点があり次第、この記事の内容を都度ブラッシュアップ致します。